# 局部变量和函数栈帧
"""
    变量本质就是一块内存空间，每个变量也是保存在各自的栈帧中(每个栈帧也是保存
在内存上)

    调试器的左下角，能够看到函数之间的“调用栈”调用栈里面描述了当前这个代码的函数
之间调用关系是啥，每一层这个调用关系就称为“函数的栈帧”，每个函数的局部变量也就在
这个栈帧中体现的

    每一层栈帧，你选中了之后，都能看到里面的局部变量，每个函数的局部变量就保存
在对应的栈帧中，调用函数，则生成对应的栈帧，调用结束，则对应的栈帧消亡(里面的
局部变量也就没了)

"""


def a():
    num1 = 1
    print('函数 a')


def b():
    num2 = 2
    a()
    print('函数 b')


def c():
    num3 = 3
    b()
    print('函数 c')


def d():
    num4 = 4
    c()
    print('函数 d')


d()